package appli_Association;


import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

import contenu.OperationsContenuImpl;
import contenu.NewsServer;
import depot.OperationsDepotImpl;
import framework.*;
import message.OperationsMessageImpl;
import annuaire.AnnuaireImpl;
import reservation.LesRessourcesImpl;
import tchat.OperationsSalonsImpl;
import tchat.Salon;
import utilisateur.UtilisateurImpl;

	public class Serveur_Association {
		public static void main(String[] args) {
			try {
				// Cr�ation du registre RMI
				Registry r = LocateRegistry.createRegistry(1099);
				// Ajout de le r�f�rence de ce registre dans le registre (pour que les clients puissent r�cup�rer ou ajouter des objets dans ce registre)
				r.rebind("registre",r);
				
				// Gestion des utilisateurs du r�seau social
				UtilisateurImpl ut = new UtilisateurImpl();
				r.rebind("utilisateurs", ut);
				
				// Gestionnaire du d�pot de fichier
				OperationsDepotImpl op = new OperationsDepotImpl();
				r.rebind("depot", op);
				
				// Gestionnaire des messages priv�s
				OperationsMessageImpl pm = new OperationsMessageImpl(ut);
				r.rebind("messages_prives", pm);
				
				//Gestionnaire des news/contenu
				NewsServer news = new NewsServer(100); 
				OperationsContenuImpl oc = new OperationsContenuImpl(news);
				r.rebind("news", oc); 
				
				// Gestionnaire du tchat
				OperationsSalonsImpl si = new OperationsSalonsImpl(ut);
				r.rebind("tchat", si);
				
				// Gestionnaire de l'annuaire
				AnnuaireImpl an = new AnnuaireImpl();
				r.rebind("annuaire", an);
				
				// Gestionnaire des ressources réservables
				LesRessourcesImpl re = new LesRessourcesImpl();
				r.rebind("lesRessources", re);
				
				// Le chat (qui ne comporte qu'un seul salon)
				Tchat.nouveauSalon("Salon principal", "");
				
				System.out.println("Serveur lance");
				
			} catch (RemoteException e) {
				e.printStackTrace();
			}
		}

}
